1. Field of the Invention
This invention relates generally to a distributed embedded system that provides extensible task and message scheduling and, more particularly, to a distributed embedded system that provides extensible task and message scheduling, where the system includes a system configuration manager and a plurality of electronic control units each having a configuration manager.
2. Discussion of the Related Art
Distributed embedded systems typically include a group of processors, referred to as electrical control units (ECU), that are coupled to each other by a communication bus/network, such as a controller area network (CAN) bus, a time-triggered protocol (TTP) bus, a FlexRay bus, a wireless network, etc. A set of tasks are allocated to each ECU, such as actuating an actuator, and messages are transmitted between the ECUs on the bus/network. For a time-triggered bus, only one message is transmitted on the bus at a time. When the system is designed, the execution of the tasks must be scheduled for each ECU and the transmission of the messages must be scheduled on the bus/network. The scheduling of the messages may have different forms, including task priority assignments for priority-based task scheduling, message identifier assignments for message scheduling on CAN buses, time slot assignments for task and message scheduling in time triggered systems, such as TTP and FlexRay, or frequency/code assignments from message scheduling in wireless networks.
The tasks are periodic and have hard deadlines that may produce catastrophic results if not met. For example, in an automotive steer-by-wire embedded system, it is necessary that the outputs from the various ECUs in the system have strict deadlines. There are also precedent constraints for the tasks where one task may need to be executed before another task is executed, possibly within a single execution period. Therefore, it is necessary that the system properly schedule the execution of the tasks in each ECU and the transmission of the task messages on the bus so that all of the deadlines are met and all of the constraints are satisfied.
Currently, once the schedules for the ECUs and the bus/network are determined, they are hard coded into the system and cannot be changed after the ECUs are built. This prevents re-using the ECUs for different systems, and also makes it impossible to reconfigure the system at run-time in response to a fault or to be adapted to different operation environments.
It is desirable that the scheduling employed in an embedded system be extensible so that if changes are needed or upgrades are developed after the initial implementation of the system, such as adding or removing ECUs and/or adding or removing tasks, the original schedule can be changed. For example, if a task set is changed for one ECU or a new ECU is added to the system, then it is desirable that this change not affect the schedules for the tasks and message transmissions of the other ECUs. If the new messages can be transmitted on the bus without affecting the transmission of the existing messages, then no change is needed for the scheduling of the other ECUs already in use. Otherwise, it may be necessary to reprogram the bus schedule at great expense.